<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 算数运算符
    // var x = "4";
    // var y = 6;
    // console.log(x + y);
    // console.log(y-x);
    // console.log(x*y);
    // console.log(x/y)
    // console.log(y%x);

    // 比较运算符
    // 结果始终为布尔值
    // var a=10;
    // var b=5;
    // console.log(a>b);    true 
    // console.log(a>=b);   true   
    // console.log(a<b);    false
    // console.log(a<=b);   false
    // 无隐式类型转换

    // var a="10";
    // var b=5;
    // console.log(a>b);    true
    // console.log(a>=b);   true
    // console.log(a<b);    false
    // console.log(a<=b);   false
    // 有隐式类型转换，两边只要有一个数值型数据，比较的规则就是数值型数据的比较规则

    // var a="10";
    // var b="5";
    // console.log(a>b);   false
    // console.log(a>=b);  false
    // console.log(a<b);   true
    // console.log(a<=b);  true
    // 无隐式类型的转换
    // 字符的比较规则是：逐位比较，一有结果就停止

    // var a="10";
    // var b=10;
    // console.log(a==b);      true
    // console.log(a!=b);      false

    // ==和!= 存在隐式类型的转换

    // console.log(a===b);     false
    // console.log(a!==b);     true

    // ===和！===不存在隐式类型的转换，严格比较，除了比较值，还比较类型

    // var a=34;
    // a=22;
    // console.log(a)
    // 重新复制会覆盖原值

    // var a = 5;
    // a += 2;
    // a -= 2;
    // a *= 2;
    // a /= 2;
    // a %= 2;
    // console.log(a)


    // 逻辑运算符
    // console.log(true||true);        true
    // console.log(false||true);       true
    // console.log(true||false);       true
    // console.log(false||false);      false
    // 逻辑或(||)；两边只要有true，结果就是true    （都为false才为false）

    // console.log(true&&true);        true
    // console.log(false&&true);       false
    // console.log(true&&false);       false
    // console.log(false&&false);      false
    // 逻辑与(&&)；两边只要有false，结果就是false  （同真才能为真）

    // console.log( !true );        false
    // console.log( !false );       true
    // 逻辑非（！）；非true为false，非false为true

    // 应用题：输入一个年份，判断其是不是闰年，如果是输出为true，如果不是，输出为false
    // var y = 2020;
    // var f = y % 4 === 0 && y % 100 !== 0 || y % 400 === 0
    // console.log(f)


    // var str = "365";
    // var str = "hello";
    // var str = "365abc";
    // var str = "365abc789";
    // var str = "abc789";
    // var str = "365.789";
    // console.log(str);
    // console.log(typeof str);
    // var num = parseInt(str);
    // console.log(num);
    // console.log(typeof num);
    // parseInt 非严格转换，不能识别小数点

    // var str = "365";
    // var str = "hello";
    // var str = "365abc";
    // var str = "365abc789";
    // var str = "abc789";
    // var str = "365.789";
    // console.log(str);
    // console.log(typeof str);
    // var num = parseFloat(str);
    // console.log(num);
    // console.log(typeof num);
    // parseFloat 非严格转换，能识别小数点

    // var str = "365";
    // var str = "hello";
    // var str = "365abc";
    // var str = "365abc789";
    // var str = "abc789";
    // var str = "365.789";
    // console.log(str);
    // console.log(typeof str);
    // var num = Math.round(str);
    // console.log(num);
    // console.log(typeof num);
    // 严格转换，四舍五入，取最近的整

    // var str = "365";
    // var str = "hello";
    // var str = "365abc";
    // var str = "365abc789";
    // var str = "abc789";
    // var str = "365.789";
    // console.log(str);
    // console.log(typeof str);
    // var num = Number(str);
    // console.log(num);
    // console.log(typeof num);
    // 严格转换   能识别小数点

    // 其他转布尔

        // 字符
        // 字符非空为true   空位false
    // console.log( Boolean(true) )
    // console.log( Boolean("true") )
    // console.log( Boolean("false") )
    // console.log( Boolean("hello") )
    // console.log( Boolean(" ") )
    // console.log( Boolean("") )

    // 数字
        // 数字非零为true    零为false
    // console.log( Boolean(234) )
    // console.log( Boolean(455.947) )
    // console.log( Boolean(-6465) )
    // console.log( Boolean(-375.46577) )
    // console.log( Boolean(0) )
    // console.log( Boolean(0.36457) )


    // 对象、数组、函数都为true
    // console.log(Boolean([]));
    // console.log(Boolean({}));
    // console.log(Boolean(function(){}));

    // undefined、NaN、null都为false
    // console.log(Boolean(undefined));
    // console.log(Boolean(null));
    // console.log(Boolean(NaN));


    // 其他转字符
    // date.toString方法
    // var date = 365;
    // var date = 365.789;
    // var date = NaN;
    // var date = {};
    // var date = [];
    // var date = [3,4,5,6,7,8];
    // var date = function(){};
    // var date = true;
    // var date = undefined;
    // var date = null;
    // console.log(date);
    // console.log(typeof date);
    // var str = date.toString();
    // console.log(str);
    // console.log(typeof str);

    // date.toString()；可以显示小数，但不能保留几位小数，小括号内写的小数就是把该数值转换成几进制
</script>

</html>